/*
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  See the NOTICE file distributed with
 *  this work for additional information regarding copyright ownership.
 *  The ASF licenses this file to You under the Apache License, Version 2.0
 *  (the "License"); you may not use this file except in compliance with
 *  the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

package javax.swing.text.html.parser;
import java.util.Hashtable;

/**
 * This class is generated basing on <a href="http://www.w3.org/TR/html401/sgml/loosedtd.html">HTML 4.01 Transitional DTD</a>.
 * Don't edit this autogenerated class!
 */
class ElementsHandler {
    static Hashtable atts = new Hashtable();
    static Object dtd;
    static void put(final String s1,
                    final String s2) {
        DTDUtilities.putAttribute(atts, s1, s2);
    }

    static void handleElement(final String name,
                              final String desc) {
        DTDUtilities.handleElement(dtd, name, desc, atts);
    }    
    static void initElementsCreation(final Object dtd) {
        ElementsHandler.dtd = dtd;
        handleAllElements();
    }

    static final String  HTML_VERSION = "401Transitional" ;
    static final String  HTML_FRAMESET =  "IGNORE";
    static final String  CONTENTTYPE =  "CDATA" ;
    static final String  CONTENTTYPES =  "CDATA" ;
    static final String  CHARSET =  "CDATA" ;
    static final String  CHARSETS =  "CDATA" ;
    static final String  LANGUAGECODE =  "NAME" ;
    static final String  CHARACTER =  "CDATA" ;
    static final String  LINKTYPES =  "CDATA" ;
    static final String  MEDIADESC =  "CDATA" ;
    static final String  URI =  "CDATA" ;
    static final String  DATETIME =  "CDATA" ;
    static final String  SCRIPT =  "CDATA" ;
    static final String  STYLESHEET =  "CDATA" ;
    static final String  FRAMETARGET =  "CDATA" ;
    static final String  TEXT =  "CDATA";
    static final String  HEAD_MISC =  "SCRIPT|STYLE|META|LINK|OBJECT" ;
    static final String  HEADING =  "H1|H2|H3|H4|H5|H6";
    static final String  LIST =  "UL | OL | DIR | MENU";
    static final String  PREFORMATTED =  "PRE";
    static final String  COLOR =  "CDATA" ;
    static final String  BODYCOLORS =  " bgcolor " + COLOR + " #IMPLIED text " + COLOR + " #IMPLIED link " + COLOR + " #IMPLIED vlink " + COLOR + " #IMPLIED alink " + COLOR + " #IMPLIED ";
    static final String  HTMLLAT1 = "Ignore" ;
    static final String  COREATTRS =  "id ID #IMPLIED class CDATA #IMPLIED style " + STYLESHEET + " #IMPLIED title " + TEXT + " #IMPLIED " ;
    static final String  I18N =  "lang " + LANGUAGECODE + " #IMPLIED dir (ltr|rtl) #IMPLIED " ;
    static final String  EVENTS =  "onclick " + SCRIPT + " #IMPLIED ondblclick " + SCRIPT + " #IMPLIED onmousedown " + SCRIPT + " #IMPLIED onmouseup " + SCRIPT + " #IMPLIED onmouseover " + SCRIPT + " #IMPLIED onmousemove " + SCRIPT + " #IMPLIED onmouseout " + SCRIPT + " #IMPLIED onkeypress " + SCRIPT + " #IMPLIED onkeydown " + SCRIPT + " #IMPLIED onkeyup " + SCRIPT + " #IMPLIED " ;
    static final String  HTML_RESERVED =  "IGNORE";
    static final String  RESERVED =  "";
    static final String  ATTRS =  "" + COREATTRS + " " + I18N + " " + EVENTS + "";
    static final String  ALIGN =  "align (left|center|right|justify) #IMPLIED" ;
    static final String  FONTSTYLE =  "TT | I | B | U | S | STRIKE | BIG | SMALL";
    static final String  PHRASE =  "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | ABBR | ACRONYM" ;
    static final String  SPECIAL =  "A | IMG | APPLET | OBJECT | FONT | BASEFONT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO | IFRAME";
    static final String  FORMCTRL =  "INPUT | SELECT | TEXTAREA | LABEL | BUTTON";
    static final String  INLINE =  "#PCDATA | " + FONTSTYLE + " | " + PHRASE + " | " + SPECIAL + " | " + FORMCTRL + "";
    static final String  BLOCK =  "P | " + HEADING + " | " + LIST + " | " + PREFORMATTED + " | DL | DIV | CENTER | NOSCRIPT | NOFRAMES | BLOCKQUOTE | FORM | ISINDEX | HR | TABLE | FIELDSET | ADDRESS";
    static final String  FLOW =  "" + BLOCK + " | " + INLINE + "";
    static final String  SHAPE =  "(rect|circle|poly|default)";
    static final String  COORDS =  "CDATA" ;
    static final String  LENGTH =  "CDATA" ;
    static final String  MULTILENGTH =  "CDATA" ;
    static final String  PIXELS =  "CDATA" ;
    static final String  IALIGN =  "(top|middle|bottom|left|right)" ;
    static final String  PRE_EXCLUSION =  "IMG|OBJECT|APPLET|BIG|SMALL|SUB|SUP|FONT|BASEFONT";
    static final String  OLSTYLE =  "CDATA" ;
    static final String  ULSTYLE =  "(disc|square|circle)";
    static final String  LISTYLE =  "CDATA" ;
    static final String  INPUTTYPE =  "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET | FILE | HIDDEN | IMAGE | BUTTON)" ;
    static final String  LALIGN =  "(top|bottom|left|right)";
    static final String  TFRAME =  "(void|above|below|hsides|lhs|rhs|vsides|box|border)";
    static final String  TRULES =  "(none | groups | rows | cols | all)";
    static final String  TALIGN =  "(left|center|right)";
    static final String  CELLHALIGN =  "align (left|center|right|justify|char) #IMPLIED char " + CHARACTER + " #IMPLIED charoff " + LENGTH + " #IMPLIED " ;
    static final String  CELLVALIGN =  "valign (top|middle|bottom|baseline) #IMPLIED" ;
    static final String  CALIGN =  "(top|bottom|left|right)";
    static final String  SCOPE =  "(row|col|rowgroup|colgroup)";
    static final String  NOFRAMES_CONTENT =  "(" + FLOW + ")*";
    static final String  HEAD_CONTENT =  "TITLE & ISINDEX? & BASE?";
    static final String  VERSION =  "version CDATA #FIXED";
    static final String  HTML_CONTENT =  "HEAD, BODY";
    static void initAttributes() {
        put("(" + FONTSTYLE + "|" + PHRASE + ")", ATTRS);
        put("(SUB|SUP)", ATTRS);
        put("SPAN", ATTRS + RESERVED + " ");
        put("BDO", COREATTRS + " lang " + LANGUAGECODE + " #IMPLIED dir (ltr|rtl) #REQUIRED ");
        put("BASEFONT", "id ID #IMPLIED size CDATA #REQUIRED color " + COLOR + " #IMPLIED face CDATA #IMPLIED ");
        put("FONT", COREATTRS + I18N + " size CDATA #IMPLIED color " + COLOR + " #IMPLIED face CDATA #IMPLIED ");
        put("BR", COREATTRS + " clear (left|all|right|none) none ");
        put("BODY", ATTRS + " onload " + SCRIPT + " #IMPLIED onunload " + SCRIPT + " #IMPLIED background " + URI + " #IMPLIED " + BODYCOLORS);
        put("ADDRESS", ATTRS);
        put("DIV", ATTRS + ALIGN + RESERVED);
        put("CENTER", ATTRS);
        put("A", ATTRS + " charset " + CHARSET + " #IMPLIED type " + CONTENTTYPE + " #IMPLIED name CDATA #IMPLIED href " + URI + " #IMPLIED hreflang " + LANGUAGECODE + " #IMPLIED target " + FRAMETARGET + " #IMPLIED rel " + LINKTYPES + " #IMPLIED rev " + LINKTYPES + " #IMPLIED accesskey " + CHARACTER + " #IMPLIED shape " + SHAPE + " rect coords " + COORDS + " #IMPLIED tabindex NUMBER #IMPLIED onfocus " + SCRIPT + " #IMPLIED onblur " + SCRIPT + " #IMPLIED ");
        put("MAP", ATTRS + " name CDATA #REQUIRED ");
        put("AREA", ATTRS + " shape " + SHAPE + " rect coords " + COORDS + " #IMPLIED href " + URI + " #IMPLIED target " + FRAMETARGET + " #IMPLIED nohref (nohref) #IMPLIED alt " + TEXT + " #REQUIRED tabindex NUMBER #IMPLIED accesskey " + CHARACTER + " #IMPLIED onfocus " + SCRIPT + " #IMPLIED onblur " + SCRIPT + " #IMPLIED ");
        put("LINK", ATTRS + " charset " + CHARSET + " #IMPLIED href " + URI + " #IMPLIED hreflang " + LANGUAGECODE + " #IMPLIED type " + CONTENTTYPE + " #IMPLIED rel " + LINKTYPES + " #IMPLIED rev " + LINKTYPES + " #IMPLIED media " + MEDIADESC + " #IMPLIED target " + FRAMETARGET + " #IMPLIED ");
        put("IMG", ATTRS + " src " + URI + " #REQUIRED alt " + TEXT + " #REQUIRED longdesc " + URI + " #IMPLIED name CDATA #IMPLIED height " + LENGTH + " #IMPLIED width " + LENGTH + " #IMPLIED usemap " + URI + " #IMPLIED ismap (ismap) #IMPLIED align " + IALIGN + " #IMPLIED border " + PIXELS + " #IMPLIED hspace " + PIXELS + " #IMPLIED vspace " + PIXELS + " #IMPLIED ");
        put("OBJECT", ATTRS + " declare (declare) #IMPLIED classid " + URI + " #IMPLIED codebase " + URI + " #IMPLIED data " + URI + " #IMPLIED type " + CONTENTTYPE + " #IMPLIED codetype " + CONTENTTYPE + " #IMPLIED archive CDATA #IMPLIED standby " + TEXT + " #IMPLIED height " + LENGTH + " #IMPLIED width " + LENGTH + " #IMPLIED usemap " + URI + " #IMPLIED name CDATA #IMPLIED tabindex NUMBER #IMPLIED align " + IALIGN + " #IMPLIED border " + PIXELS + " #IMPLIED hspace " + PIXELS + " #IMPLIED vspace " + PIXELS + " #IMPLIED " + RESERVED);
        put("PARAM", "id ID #IMPLIED name CDATA #REQUIRED value CDATA #IMPLIED valuetype (DATA|REF|OBJECT) DATA type " + CONTENTTYPE + " #IMPLIED ");
        put("APPLET", COREATTRS + " codebase " + URI + " #IMPLIED archive CDATA #IMPLIED code CDATA #IMPLIED object CDATA #IMPLIED alt " + TEXT + " #IMPLIED name CDATA #IMPLIED width " + LENGTH + " #REQUIRED height " + LENGTH + " #REQUIRED align " + IALIGN + " #IMPLIED hspace " + PIXELS + " #IMPLIED vspace " + PIXELS + " #IMPLIED ");
        put("HR", ATTRS + " align (left|center|right) #IMPLIED noshade (noshade) #IMPLIED size " + PIXELS + " #IMPLIED width " + LENGTH + " #IMPLIED ");
        put("P", ATTRS + ALIGN);
        put("(" + HEADING + ")", ATTRS + ALIGN);
        put("PRE", ATTRS + " width NUMBER #IMPLIED ");
        put("Q", ATTRS + " cite " + URI + " #IMPLIED ");
        put("BLOCKQUOTE", ATTRS + " cite " + URI + " #IMPLIED ");
        put("(INS|DEL)", ATTRS + " cite " + URI + " #IMPLIED datetime " + DATETIME + " #IMPLIED ");
        put("DL", ATTRS + " compact (compact) #IMPLIED ");
        put("(DT|DD)", ATTRS);
        put("OL", ATTRS + " type " + OLSTYLE + " #IMPLIED compact (compact) #IMPLIED start NUMBER #IMPLIED ");
        put("UL", ATTRS + " type " + ULSTYLE + " #IMPLIED compact (compact) #IMPLIED ");
        put("DIR", ATTRS + " compact (compact) #IMPLIED ");
        put("MENU", ATTRS + " compact (compact) #IMPLIED ");
        put("LI", ATTRS + " type " + LISTYLE + " #IMPLIED value NUMBER #IMPLIED ");
        put("FORM", ATTRS + " action " + URI + " #REQUIRED method (GET|POST) GET enctype " + CONTENTTYPE + " application/x-www-form-urlencoded accept " + CONTENTTYPE + "s; #IMPLIED name CDATA #IMPLIED onsubmit " + SCRIPT + " #IMPLIED onreset " + SCRIPT + " #IMPLIED target " + FRAMETARGET + " #IMPLIED accept-charset " + CHARSET + "s; #IMPLIED ");
        put("LABEL", ATTRS + " for IDREF #IMPLIED accesskey " + CHARACTER + " #IMPLIED onfocus " + SCRIPT + " #IMPLIED onblur " + SCRIPT + " #IMPLIED ");
        put("INPUT", ATTRS + " type " + INPUTTYPE + " TEXT name CDATA #IMPLIED value CDATA #IMPLIED checked (checked) #IMPLIED disabled (disabled) #IMPLIED readonly (readonly) #IMPLIED size CDATA #IMPLIED maxlength NUMBER #IMPLIED src " + URI + " #IMPLIED alt CDATA #IMPLIED usemap " + URI + " #IMPLIED ismap (ismap) #IMPLIED tabindex NUMBER #IMPLIED accesskey " + CHARACTER + " #IMPLIED onfocus " + SCRIPT + " #IMPLIED onblur " + SCRIPT + " #IMPLIED onselect " + SCRIPT + " #IMPLIED onchange " + SCRIPT + " #IMPLIED accept " + CONTENTTYPE + "s; #IMPLIED align " + IALIGN + " #IMPLIED " + RESERVED);
        put("SELECT", ATTRS + " name CDATA #IMPLIED size NUMBER #IMPLIED multiple (multiple) #IMPLIED disabled (disabled) #IMPLIED tabindex NUMBER #IMPLIED onfocus " + SCRIPT + " #IMPLIED onblur " + SCRIPT + " #IMPLIED onchange " + SCRIPT + " #IMPLIED " + RESERVED);
        put("OPTGROUP", ATTRS + " disabled (disabled) #IMPLIED label " + TEXT + " #REQUIRED ");
        put("OPTION", ATTRS + " selected (selected) #IMPLIED disabled (disabled) #IMPLIED label " + TEXT + " #IMPLIED value CDATA #IMPLIED ");
        put("TEXTAREA", ATTRS + " name CDATA #IMPLIED rows NUMBER #REQUIRED cols NUMBER #REQUIRED disabled (disabled) #IMPLIED readonly (readonly) #IMPLIED tabindex NUMBER #IMPLIED accesskey " + CHARACTER + " #IMPLIED onfocus " + SCRIPT + " #IMPLIED onblur " + SCRIPT + " #IMPLIED onselect " + SCRIPT + " #IMPLIED onchange " + SCRIPT + " #IMPLIED " + RESERVED);
        put("FIELDSET", ATTRS);
        put("LEGEND", ATTRS + " accesskey " + CHARACTER + " #IMPLIED align " + LALIGN + " #IMPLIED ");
        put("BUTTON", ATTRS + " name CDATA #IMPLIED value CDATA #IMPLIED type (button|submit|reset) submit disabled (disabled) #IMPLIED tabindex NUMBER #IMPLIED accesskey " + CHARACTER + " #IMPLIED onfocus " + SCRIPT + " #IMPLIED onblur " + SCRIPT + " #IMPLIED " + RESERVED);
        put("TABLE", ATTRS + " summary " + TEXT + " #IMPLIED width " + LENGTH + " #IMPLIED border " + PIXELS + " #IMPLIED frame " + TFRAME + " #IMPLIED rules " + TRULES + " #IMPLIED cellspacing " + LENGTH + " #IMPLIED cellpadding " + LENGTH + " #IMPLIED align " + TALIGN + " #IMPLIED bgcolor " + COLOR + " #IMPLIED " + RESERVED + " datapagesize CDATA #IMPLIED ");
        put("CAPTION", ATTRS + " align " + CALIGN + " #IMPLIED ");
        put("COLGROUP", ATTRS + " span NUMBER 1 width " + MULTILENGTH + " #IMPLIED " + CELLHALIGN + CELLVALIGN);
        put("COL", ATTRS + " span NUMBER 1 width " + MULTILENGTH + " #IMPLIED " + CELLHALIGN + CELLVALIGN);
        put("(THEAD|TBODY|TFOOT)", ATTRS + CELLHALIGN + CELLVALIGN);
        put("TR", ATTRS + CELLHALIGN + CELLVALIGN + " bgcolor " + COLOR + " #IMPLIED ");
        put("(TH|TD)", ATTRS + " abbr " + TEXT + " #IMPLIED axis CDATA #IMPLIED headers IDREFS #IMPLIED scope " + SCOPE + " #IMPLIED rowspan NUMBER 1 colspan NUMBER 1 " + CELLHALIGN + CELLVALIGN + " nowrap (nowrap) #IMPLIED bgcolor " + COLOR + " #IMPLIED width " + LENGTH + " #IMPLIED height " + LENGTH + " #IMPLIED ");
        put("FRAMESET", COREATTRS + " rows " + MULTILENGTH + "s; #IMPLIED cols " + MULTILENGTH + "s; #IMPLIED onload " + SCRIPT + " #IMPLIED onunload " + SCRIPT + " #IMPLIED ");
        put("FRAME", COREATTRS + " longdesc " + URI + " #IMPLIED name CDATA #IMPLIED src " + URI + " #IMPLIED frameborder (1|0) 1 marginwidth " + PIXELS + " #IMPLIED marginheight " + PIXELS + " #IMPLIED noresize (noresize) #IMPLIED scrolling (yes|no|auto) auto ");
        put("IFRAME", COREATTRS + " longdesc " + URI + " #IMPLIED name CDATA #IMPLIED src " + URI + " #IMPLIED frameborder (1|0) 1 marginwidth " + PIXELS + " #IMPLIED marginheight " + PIXELS + " #IMPLIED scrolling (yes|no|auto) auto align " + IALIGN + " #IMPLIED height " + LENGTH + " #IMPLIED width " + LENGTH + " #IMPLIED ");
        put("NOFRAMES", ATTRS);
        put("HEAD", I18N + " profile " + URI + " #IMPLIED ");
        put("TITLE", I18N);
        put("ISINDEX", COREATTRS + I18N + " prompt " + TEXT + " #IMPLIED ");
        put("BASE", "href " + URI + " #IMPLIED target " + FRAMETARGET + " #IMPLIED ");
        put("META", I18N + " http-equiv NAME #IMPLIED name NAME #IMPLIED content CDATA #REQUIRED scheme CDATA #IMPLIED ");
        put("STYLE", I18N + " type " + CONTENTTYPE + " #REQUIRED media " + MEDIADESC + " #IMPLIED title " + TEXT + " #IMPLIED ");
        put("SCRIPT", "charset " + CHARSET + " #IMPLIED type " + CONTENTTYPE + " #REQUIRED language CDATA #IMPLIED src " + URI + " #IMPLIED defer (defer) #IMPLIED event CDATA #IMPLIED for " + URI + " #IMPLIED ");
        put("NOSCRIPT", ATTRS);
        put("HTML", I18N + VERSION);
    }

    static void handleAllElements() {
        handleElement("(" + FONTSTYLE + "|" + PHRASE + ")", "- - (" + INLINE + ")*");
        handleElement("(SUB|SUP)", "- - (" + INLINE + ")* ");
        handleElement("SPAN", "- - (" + INLINE + ")* ");
        handleElement("BDO", "- - (" + INLINE + ")* ");
        handleElement("BASEFONT", "- O EMPTY ");
        handleElement("FONT", "- - (" + INLINE + ")* ");
        handleElement("BR", "- O EMPTY ");
        handleElement("BODY", "O O (" + FLOW + ")* +(INS|DEL) ");
        handleElement("ADDRESS", "- - ((" + INLINE + ")|P)* ");
        handleElement("DIV", "- - (" + FLOW + ")* ");
        handleElement("CENTER", "- - (" + FLOW + ")* ");
        handleElement("A", "- - (" + INLINE + ")* -(A) ");
        handleElement("MAP", "- - ((" + BLOCK + ") | AREA)+ ");
        handleElement("AREA", "- O EMPTY ");
        handleElement("LINK", "- O EMPTY ");
        handleElement("IMG", "- O EMPTY ");
        handleElement("OBJECT", "- - (PARAM | " + FLOW + ")* ");
        handleElement("PARAM", "- O EMPTY ");
        handleElement("APPLET", "- - (PARAM | " + FLOW + ")* ");
        handleElement("HR", "- O EMPTY ");
        handleElement("P", "- O (" + INLINE + ")* ");
        handleElement("(" + HEADING + ")", "- - (" + INLINE + ")* ");
        handleElement("PRE", "- - (" + INLINE + ")* -(" + PRE_EXCLUSION + ") ");
        handleElement("Q", "- - (" + INLINE + ")* ");
        handleElement("BLOCKQUOTE", "- - (" + FLOW + ")* ");
        handleElement("(INS|DEL)", "- - (" + FLOW + ")* ");
        handleElement("DL", "- - (DT|DD)+ ");
        handleElement("DT", "- O (" + INLINE + ")* ");
        handleElement("DD", "- O (" + FLOW + ")* ");
        handleElement("OL", "- - (LI)+ ");
        handleElement("UL", "- - (LI)+ ");
        handleElement("(DIR|MENU)", "- - (LI)+ -(" + BLOCK + ") ");
        handleElement("LI", "- O (" + FLOW + ")* ");
        handleElement("FORM", "- - (" + FLOW + ")* -(FORM) ");
        handleElement("LABEL", "- - (" + INLINE + ")* -(LABEL) ");
        handleElement("INPUT", "- O EMPTY ");
        handleElement("SELECT", "- - (OPTGROUP|OPTION)+ ");
        handleElement("OPTGROUP", "- - (OPTION)+ ");
        handleElement("OPTION", "- O (#PCDATA) ");
        handleElement("TEXTAREA", "- - (#PCDATA) ");
        handleElement("FIELDSET", "- - (#PCDATA,LEGEND,(" + FLOW + ")*) ");
        handleElement("LEGEND", "- - (" + INLINE + ")* ");
        handleElement("BUTTON", "- - (" + FLOW + ")* -(A|" + FORMCTRL + "|FORM|ISINDEX|FIELDSET|IFRAME) ");
        handleElement("TABLE", "- - (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)");
        handleElement("CAPTION", "- - (" + INLINE + ")* ");
        handleElement("THEAD", "- O (TR)+ ");
        handleElement("TFOOT", "- O (TR)+ ");
        handleElement("TBODY", "O O (TR)+ ");
        handleElement("COLGROUP", "- O (COL)* ");
        handleElement("COL", "- O EMPTY ");
        handleElement("TR", "- O (TH|TD)+ ");
        handleElement("(TH|TD)", "- O (" + FLOW + ")* ");
        handleElement("FRAME", "- O EMPTY ");
        handleElement("IFRAME", "- - (" + FLOW + ")* ");
        handleElement("NOFRAMES", "- - " + NOFRAMES_CONTENT + " ");
        handleElement("HEAD", "O O (" + HEAD_CONTENT + ") +(" + HEAD_MISC + ") ");
        handleElement("TITLE", "- - (#PCDATA) -(" + HEAD_MISC + ") ");
        handleElement("ISINDEX", "- O EMPTY ");
        handleElement("BASE", "- O EMPTY ");
        handleElement("META", "- O EMPTY ");
        handleElement("STYLE", "- - " + STYLESHEET + " ");
        handleElement("SCRIPT", "- - " + SCRIPT + " ");
        handleElement("NOSCRIPT", "- - (" + FLOW + ")* ");
        handleElement("HTML", "O O (" + HTML_CONTENT + ") ");
        handleElement("FRAMESET",  "- - ((FRAMESET|FRAME)+ & NOFRAMES?)");
    }
}

